from MiniBotControlLib import MiniBotControlLib

# 
# 		API:int SetDevData(unsigned char id, unsigned char ioPort, unsigned char* data, int dataLen)
# Arguments:id unsigned char类型，此处的id值为传感器模块的id值，用户可从API使用手册上找到各个传感器的id值;
# 			ioPort unsigned char类型，即传感器接入扩展Minibot-Ex中的I/O端口，针对不同的传感器有各自不同的
# 				   端口范围可供使用,建议用户在使用前查看手册进行接线。此外，ioPort应采用十六进制的形式进行赋值；
# 			data  unsigned char指针类型，用户可以创建一个数组用以存放控制外部设备的数据，并将该数组名传入函数中，
# 				  控制数据类型根据传感器的不同而不同，用户应查看手册按照各传感器对应规则进行编程。
# 			dataLen int类型，data数组的长度。
# 	return: flag int类型，大于0即为设置成功，等于0即为设置失败。
# 


mlib = MiniBotControlLib()
r = mlib.Connect("192.168.1.129",8899)
if(r > 0):
 print("连接成功")
else:
 print("连接失败")

data =[0x10,0x18,0x14,0x10,0x10,0x10,0x10,0xFE]

	#
	# demo此处使用的8*8点阵作为演示，查阅手册可知，8*8点阵的id值为十进制的3，I/O端口为十六进制的0x01;
	#  8*8点阵共有8行，因此需要创建长度为8的数组，dataLen相应地赋值为8;
	#  demo中显示的效果为数字1，以1表示LED亮，0表示LED灭可以得到如下结果：
	# 	0 0 0 0 1 0 0 0
	#    0 0 0 1 1 0 0 0 
	#    0 0 1 0 1 0 0 0
	#    0 0 0 0 1 0 0 0 
	#    0 0 0 0 1 0 0 0
	#    0 0 0 0 1 0 0 0
	#    0 0 0 0 1 0 0 0
	#    0 1 1 1 1 1 1 1
	#  由于传输时先传低4位，后传高4位，故每一行转换为16进制数时应为:0x10,0x18,0x14,0x10,0x10,0x10,0x10,0xFE;
	# 根据协议，赋8个16进制的数给unsigned char类型
	#

#写入数据
r=SetDevData(3,0x01,data)
print("rs="+str(r))
